namespace UnitTests.Logic
{
	public class TestHashData
	{
		public int Id { get; set; }
		public string Name { get; set; }
		public string Fen { get; set; }
		public int ExpectedHash { get; set; }

		public override string ToString()
		{
			return Id + ". " + Name;
		}

		public TestHashData(int id, string name, string fen, int expectedHash)
		{
			Id = id;
			Name = name;
			Fen = fen;
			ExpectedHash = expectedHash;
		}

		public static TestHashData[] All()
		{
			return new[]
				{
					// ReSharper disable StringLiteralTypo 
					new TestHashData(01, "No castling", "r1bqkb1r/pppppppp/2n2n2/8/PP6/N7/2PPPPPP/R1BQKBNR b - - 0 3", 1896291952),
					new TestHashData(02, "White en-passant", "r1bqkb1r/pppppppp/2n2n2/8/PP6/N7/2PPPPPP/R1BQKBNR b KQkq b3 0 3", 1008746661),
					new TestHashData(03, "Black en-passant", "r1bqkb1r/pppppppp/2n2n2/8/PP6/N7/2PPPPPP/R1BQKBNR w KQkq b6 0 3", 1863078203),
					new TestHashData(04, "The very last index", "r1bqkb1r/pppppppp/2n2n2/8/PP6/N7/2PPPPPP/R1BQKBNR w KQkq h6 0 3", 919105805),
					// ReSharper restore StringLiteralTypo
				};
		}
	}
}